As portable devices, such as mobile communication systems, smart phones, tablet computers, laptops and navigation devices, become more advanced and powerful, these portable devices increasingly provide locational guidance to users in real time. More recently, portable devices have introduced a concept known as geo-fencing. A geofence is a virtual perimeter around a real-world location. Portable devices that implement geo-fencing functionalities may alert the user when the portable device has entered or exited an established geofence.
A geofence may be a circular or polygon defined area around a point on a map that is often defined by the areas latitude and longitude. Programs that incorporate geo-fencing allow an administrator of a geofence to set up triggers so when a device enters (or exits) the boundaries of the geofence (defined by the administrator), a text message or email alert is sent. Many geo-fencing applications incorporate Google® Earth, allowing administrators to define boundaries on top of a satellite view of a specific geographical area. Developers define geofences to enhance their mobile applications such as knowing when to push a notification to a customer when they are near the store, or to track individuals such as turning on the lights in their house when someone is almost home. Unfortunately, the platforms have limitations on the number of geofences that can be monitored. Currently android is set to 100 geofences and iOS has a 20 geofence limitation. In situations where more geofences must be monitored than the platform can handle, it is up to the developers to determine which geofences are returned. Often this means returning only those geofences within the closest distance to the customer in combination with an expensive API call periodically to check if a big location change has occurred.